Information processing apparatus and method therefor

ABSTRACT

An information processing apparatus, in which an operating system operates, includes a setting unit and a control unit. The setting unit sets, in a case that an application is installed and if an installation target application is installed by updating or if the operating system is not a predetermined version, to activate the installation target application in a hardware rendering mode. The control unit install, if software necessary for installing the installation target application is not installed, the necessary software, wherein the control unit installs the installation target application after installation of the necessary software, and wherein the installed application is activated according to a setting by the setting unit.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to processing procedures for installingsoftware and performing an environment check and recovery thereof.

2. Description of the Related Art

Along with improvement in functions of applications, system changeswhich are necessary for using software have increased year after year.Items needs to be changed in the system include an increase of a numberof modules arranged in the system, addition of descriptions to aregistry necessary for operating modules, changes in a security settingof an operating system (OS), and so on and so forth. In addition, someapplications may operate using other company's software, and the othercompany's software need to be installed in advance. For example, WindowsPresentation Foundation application (hereinafter, referred to as a WPFapplication) has a problem in that the WPF application does not properlyoperate if “.NetFramework” (i.e., other company's software) in a versioncorresponding to the WPF application is not installed in a systemenvironment (hereinafter, referred to as environment).

In view of such a problem, in a case where software necessary for anoperation of an application is not installed, software necessary for theoperation of the application is generally installed during installationprocessing of an installer of the relevant application. However, in acase where software necessary for the operation of the application hasbeen already installed in the environment but there is any defect in theenvironment of the installed software (presence of files, registryinformation, or environment variables), there is concern that theapplication may not operate correctly.

Thus, conventionally, a technique for determining during installationprocessing of software whether an installation target applicationproperly operates and determining whether to install the applicationbefore installing the application, is discussed. (for example, JapanesePatent Application laid-Open No. 2004-129246) According to thetechnique, since whether the application properly operates can bedetermined during installation processing, and thus, an issue such thatthe installation target application does not properly operate can beprevented. In addition, it is described that various pieces of productinformation such as product identification (ID), a vendor name, anapplication name, a version, and necessary resources are used for thedetermination.

In the above-described conventional technique, whether the applicationcan be used is determined from the product information of the targetapplication before the application is installed, and thus it isdetermined whether to install the application. In this case, if it isdetermined that the application is cannot be used by an installer,eventually the application cannot be installed.

Further, in addition to the viewpoints of the above-describedconventional technique, it is also necessary to take into considerationthe occurrence of defects in the operation of OS resulting frominstallation of the application due to an issue relating to hardware.For example, when the WPF application is activated, the OS may go into ablue screen state due to defects associated with a chipset and a driver.If a user who has fallen into such a situation is not familiar withsoftware or hardware, sometime the user cannot take a solution forproperly operating the application.

SUMMARY OF THE INVENTION

The present invention is directed to a technique capable of establishingan environment in which an application can operate properly by, forexample, recovering the environment in a case where it is determinedthat there is a problem with the environment during processing of aninstaller.

According to an aspect of the present invention, an informationprocessing apparatus in which an operating system operates includes asetting unit configured to set, in a case that an application isinstalled and if an installation target application is installed byupdating or if the operating system is not a predetermined version, toactivate the installation target application in a hardware renderingmode, and a control unit configured to install, if software necessaryfor installing the installation target application is not installed, thenecessary software, wherein the control unit installs the installationtarget application after installation of the necessary software, andwherein the installed application is activated according to a setting bythe setting unit.

Further features and aspects of the present invention will becomeapparent from the following detailed description of exemplaryembodiments with reference to the attached drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings, which are incorporated in and constitute apart of the specification, illustrate exemplary embodiments, features,and aspects of the invention and, together with the description, serveto explain the principles of the invention.

FIG. 1 illustrates a hardware configuration of an information processingapparatus.

FIG. 2 illustrates a software configuration of an information processingapparatus.

FIG. 3 illustrates an example of a setting value in a rendering mode ofan application.

FIG. 4 illustrates an example of a user interface (UI) of an installerscreen.

FIG. 5 illustrates an example of a UI of an environment recoveryapplication.

FIG. 6 illustrates an example of a UI of an environment checkapplication

FIG. 7 illustrates an example of UI of an environment recoveryapplication

FIG. 8 illustrates examples of registry information and installerinformation.

FIG. 9 is a flowchart illustrating installation processing performed byan installer.

FIG. 10 is a flowchart illustrating environment recovery processingperformed by an environment recovery application

FIG. 11 is a flowchart illustrating environment recovery processingperformed by an environment check application.

FIG. 12 is a flowchart illustrating application activation processingperformed by an application.

FIG. 13 is a flowchart illustrating installation processing performed byan installer.

FIG. 14 illustrates an example of a UI of an environment checkapplication.

DESCRIPTION OF THE EMBODIMENTS

Various exemplary embodiments, features, and aspects of the inventionwill be described in detail below with reference to the drawings.

FIG. 1 illustrates a hardware configuration of an information processingapparatus 100 according to a first exemplary embodiment of the presentinvention. In FIG. 1, the information processing apparatus 100 is acomputer used by a user. In the information processing apparatus 100, apredetermined operating system (OS) is installed, and various types ofapplications for executing specific functional processing are alsoinstalled.

Further, the information processing apparatus 100 is provided with akeyboard 105 and a pointing device 106 serving as input devices thatreceive user operation input. Furthermore, the information processingapparatus 100 includes a display unit 102 that provides visual outputinformation feedback to a user. The information processing apparatus 100includes storage devices such as a random access memory (RAM) 103, aread only memory (ROM) 104, and a hard disk drive (HDD) 107 that storevarious programs and execution information according to the presentexemplary embodiment. The information processing apparatus 100 furtherincludes a compact disk ROM (CD-ROM)/digital versatile disk ROM(DVD-ROM) drive 108 for reading data recorded in a CD/DVD 110. Othercontrol programs including the OS and a control program for realizingthe present invention are loaded into the RAM 103 and executed by acentral processing unit (CPU) 101. The RAM 103 also functions as varioustypes of work areas and temporary save areas used for executing thecontrol program. The ROM 104 stores various types of control programsfor the CPU 101 to execute various types of control. The informationprocessing apparatus 100 further includes an interface deviceinput/output (I/O) 109 for communication with external devices and theCPU 101 that executes programs. A connection configuration to peripheraldevices may be wired or wireless.

FIG. 2 is a software configuration diagram illustrating a softwareconfiguration of the information processing apparatus 100.

An installer 200 includes various types of user interfaces for executinginstallation processing of applications, receives a request from a useron a desktop of the information processing apparatus 100, andcomprehensively manages execution of each functional processing. Inaddition, the installer 200 is stored in the HDD 107, or the CD/DVD 110,and performs program execution by the CPU 101, stores executioninformation or temporary data in the RAM 103. An environment recoveryapplication 210 and an environment check application 220 described beloware similar to the installer 200.

The installer 200 includes components 201 to 203.

An installer UI unit 201 handles establishment of a user interface andreception of various types of input operations from a user in theinstaller 200. An installer execution unit 202 performs functions ofinstallation, uninstallation, and recovery installation of applicationsor setting establishment of applications in the installer 200. Further,the installer execution unit 202 changes installation processing(described below) based on information analyzed by an environmentanalysis unit 203. The environment analysis unit 203 performs a functionof analyzing environment information of the information processingapparatus 100 in the installer 200. The environment informationindicates, for example, architecture information of the OS, versioninformation of the OS, registry information, environment variables,software information of already-installed software, and various settingsof an installation target application.

The environment recovery application 210 includes various types of userinterfaces for recovering an environment of the information processingapparatus 100, receives a request from a user on the desktop of theinformation processing apparatus 100, and comprehensively managesexecution of each functional processing.

An environment recovery application UI unit 211 handles establishment ofa user interface and reception of various types of input operations froma user in the environment recovery application 210. The environmentrecovery application UI unit 211 executes processing according toresponses of the installer UI unit 201 and an environment checkapplication UI unit 221. An environment recovery unit 212 performs afunction of recovering the environment of the information processingapparatus 100 by the environment recovery application 210. Theenvironment indicates registry information and a file relating to, forexample, “.Net Framework” and “Visual C++ Redistributable”, andenvironment variables registered in the information processing apparatus100.

The environment check application 220 includes various types of userinterfaces for checking the environment of the information processingapparatus 100, receives a request from a user on the desktop of theinformation processing apparatus 100, and comprehensively managesexecution of each functional processing. The environment checkapplication 220 is an application for testing with the similar type tothat of an application 230 which is an installation target of theinstaller 200. As the usage of the environment check application 220,the environment check application 220 is executed to check whether theapplication 230 properly operates, before the application 230 isactually installed, and operation verification is performed. As itsfunction, the environment check application 220 has a display functionof providing a screen illustrated in FIG. 6 described below at best.

The environment check application UI unit 221 handles establishment of auser interface and reception of various types of input operations from auser in the environment check application 220. In addition, theenvironment check application UI unit 221 executes the processingaccording to responses of the environment recovery application UI unit211. An environment check unit 222 performs a function of checkingwhether there is any defect in the environment of the informationprocessing apparatus 100 by the environment check application 220.

The application 230 includes various types of user interfaces forexecuting applications, receives a request from a user on the desktop ofthe information processing apparatus 100, and comprehensively managesexecution of each functional processing. The application 230 isinstalled in the HDD 107 by the installer 200, performs programexecution by the CPU 101, and stores execution information and temporarydata in the RAM 103.

An application UI unit 231 handles establishment of a user interface andreception of various types of input operations from a user in theapplication 230. An environment analysis unit 232 performs a function ofanalyzing environment information of the information processingapparatus 100 in the application 230.

FIG. 3 illustrates an example of a setting value of a rendering mode ofan application. Before FIG. 3 is described, the rendering mode will bedescribed below.

An internal architecture of the WPF application includes two renderingmethods, namely hardware rendering and software rendering, andprocessing of hardware rendering is generally performed at a higherspeed than that of software rendering. In a case where a setting of therendering mode is not made explicitly, an application is generallyactivated in a hardware rendering mode. However, if there is any defectin a driver and a mother board of a video card, when the WPF applicationis activated in the hardware rendering mode, a blue screen may occur.Therefore, in a case where any defect is likely to occur under such asituation, it is desirable to activate the WPF application in a softwarerendering mode. Processing of the hardware rendering is performed bygraphics processing unit (GPU), and processing of the software renderingis performed by the central processing unit (CPU).

Rendering mode setting information 300 includes a rendering mode settingvalue 301 of the WPF application. The rendering mode setting value 301stores a setting value for activating the WPF application in any one ofthe hardware rendering and software rendering. The environment checkapplication 220 and the application 230 read the rendering mode settingvalue 301 and determine a rendering mode of the application. The detailsof the determination processing will be described below.

FIG. 4 illustrates an example of a user interface of an installerscreen. An installer main window 400 indicates a user interface of theinstaller UI unit 201.

A software list 401 indicates a list of software pieces that need to beinstalled in the information processing apparatus 100 before theapplication is installed. A software installation state 402 indicatesinstallation states of the software pieces listed in the software list401. In this case, the software installation state 402 indicatesinstall-state information such as installed and not yet installed. Theenvironment analysis unit 203 determines whether the software has beeninstalled immediately before displaying the installer screen 400, and ifthe software has been already installed, the software installation state402 is displayed as “installed” at the time of display of the installerscreen 400.

When an installation start button 403 is pressed, the software pieceslisted in the software list 401 are installed in order from top tobottom. When all of the installation processing is finished, the worddisplayed on the installation start button 403 is changed from “Start”to “Next”. In addition, in a case where necessary software pieces areall installed, a Next button (not illustrated) is displayed. By pressingthe Next button (not illustrated), the installation processing isshifted to the next processing. When an installation cancel button 404is pressed, the installation processing is suspended and terminated.

FIG. 5 illustrates an example of a user interface of the environmentrecovery application 210.

An environment recovery application window 500 indicates a userinterface of the environment recovery application UI unit 211. Theenvironment recovery application window 500 is provided with selectionbuttons 501 and 502 for selecting whether to perform the environmentcheck. When the selection button 501 is pressed, the environment checkapplication 220 is activated. On the other hand, when the selectionbutton 502 is pressed, the environment check application 220 is notactivated, and the processing is shifted to the next installationprocessing.

FIG. 6 illustrates an example of a user interface of the environmentcheck application 220.

An environment check application window 600 indicates a user interfaceof the environment check application UI unit 221. The environment checkapplication window 600 A is displayed when the environment check is inprogress, and when the environment check is finished, the environmentcheck application window 600 is closed, and the processing is shifted tothe next installation processing. In a case where a defect is found bythe environment check, the environment check application window 600 isclosed, and the environment recovery application 210 is activated. Inthe present example, although the WPF application is adopted to analyzea defect in the “.NetFramework” or the blue screen, the type of theapplication is not limited.

FIG. 7 illustrates an example of a user interface of the environmentrecovery application 210. An environment recovery application window 700indicates a user interface of the environment recovery application UIunit 211. The environment recovery application window 700 is displayedwhen the environment recovery is in progress, and when the environmentrecovery is finished, the environment recovery application window 700 isclosed, and the processing is shifted to the next installationprocessing.

FIG. 8 illustrates examples of registry information 800 of theinformation processing apparatus 100 and installer information 810 ofthe installer 200. These pieces of information are used in theinstallation processing of the installer 200.

The registry information 800 indicates a registry information list ofthe information processing apparatus 100, and stores therein informationof software pieces installed in the information processing apparatus100. For example, the registry information 800 includes versioninformation, UpgradeCode, ProductCode, an install-path of anapplication.

The installer information 810 stores therein information necessary forinstallation processing of the installer 200. For example, the installerinformation 810 includes a version of the installer and softwareinformation necessary for installation of the installation targetapplication. The user interface of the above-described software list 401is generated from the information.

FIG. 9 is a flowchart illustrating the installation processing performedby the installer 200. The processing in the flowchart is started by theinstaller UI unit 201 receiving an operation indicating execution of theinstallation as a trigger.

In step S900, the installer execution unit 202 determines whether theinstaller 200 is executed as update installation based on the registryinformation 800 and the installer information 810 via the environmentanalysis unit 203. A version of the application stored in the registryinformation 800 is compared with a version of the installer stored inthe installer information 810. If the version of the installer 200 ishigher, it is determined as update installation (YES in step S900), andthe processing proceeds to step S903. On the other hand, if anapplication which can be subjected to update installation is notincluded in the registry information 800, it is not determined as updateinstallation (NO in step S900), and the processing proceeds to stepS901.

In step S901, the installer execution unit 202 determines whether aversion of the OS of the information processing apparatus 100 is apredetermined version via the environment analysis unit 203. Morespecifically, it is determined whether a version of the OS of theinformation processing apparatus 100 is Windows XP or Windows Vista. Asa result of determination processing of the OS of the informationprocessing apparatus 100, if it is determined that the OS of theinformation processing apparatus 100 is Windows XP or Windows Vista (YESin step S901), the processing proceeds to step S902. On the other hand,if it is not determined that the OS of the information processingapparatus 100 is Windows XP or Windows Vista (NO in step S901), theprocessing proceeds to step S903. In this processing, the reason forusing a version of the OS as a determination basis is that there is aconcern about occurrence of a blue screen defect in Windows XP orWindows Vista from the past examples. If it is assumed that defects mayoccur in versions other than the above-described OS versions, otherversions can be added to determination processing.

In step S902, the installer execution unit 202, as illustrated in FIG.3, stores a setting value for activating the WPF application, which isan installation target of the installer, in the software rendering modein the rendering mode setting information 300.

In step S903, the installer execution unit 202 stores a setting valuefor activating the WPF application not in the software rendering mode inthe rendering mode setting information 300. More specifically, the WPFapplication is activated in the hardware rendering mode. In the case ofthe update installation, it is assumed that the user can have properlyused the WPF application which is not yet updated before installing theapplication this time. Therefore, in this case, setting is performed toactivate the WPF application in the hardware rendering mode.

In step S904, the installer execution unit 202 determines aninstallation state of software necessary for operations of theinstallation target application based on the registry information 800and the installer information 810 via the environment analysis unit 203.For example, an installation state determination logic is as follows, ifinformation of software stored in the installer information 810 is notstored in the registry information 800, it is determined that necessarysoftware is not yet installed. On the other hand, if it is stored in theregistry information 800, it is determined that necessary software hasbeen already installed. Through the determination processing, thesoftware list 401 and the software installation state 402 are displayedon the installer main window 400. When the installer UI unit 201receives an operation indicating that the installation start button 403or the Next button (not illustrated) has been pressed, the processingproceeds to step S905.

In step S905, the installer execution unit 202 determines whether“.NetFramework” (dotNet4CP)” which is software necessary for operationsof the installation target application has been already installed viathe environment analysis unit 203. More specifically, if it isdetermined that “.NetFramework” has been already installed (YES in stepS905) by the installation state determination logic in step S904, theprocessing proceeds to step S906. On the other hand, if it is determinedthat “.NetFramework” has not been installed (NO in step S905) by theinstallation state determination logic in step S904, the processingproceeds to step S907.

In step S906, the installer execution unit 202 activates the recoveryapplication 210 for recovering the environment of the informationprocessing apparatus 100. The details thereof will be described belowwith reference to FIG. 10. On the other hand, in step S907, theinstaller execution unit 202 installs “.NetFramework”.

In step S908, the installer execution unit 202 install the application230, that is an installation target.

In step S909, the installer execution unit 202 determines whether theentire installation processing including from installation of softwareto installation of application has been properly performed. If theinstallation processing has been properly performed while executing theinstaller, it is determined that installation of the application hasbeen successful (SUCCESSFUL in step S909), and the processing in thepresent flowchart ends. On the other hand, if the installationprocessing has not been properly performed while executing theinstaller, it is determined that installation of the application hasfailed (FAILED in step S909), and the processing proceeds to step S910.

In step S910, the installer execution unit 202 performs rollbackprocessing for rolling back the information used in the installationprocessing to the point before the installation processing. Theinformation used in the installation processing refers to, for example,an installed file, a temporary file, or a registry. If installation ofthe application has failed, rollback processing of software pieces whichwere necessary for installation of the application is not performed.However, if the installation processing has failed during theinstallation of these software pieces, the installer execution unit 202performs rollback processing in accordance with specification of thesoftware. After the rollback processing is completed, the processing inthe present flowchart ends.

FIG. 10 is a flowchart illustrating the environment recovery processingperformed by the environment recovery application 210 associated withthe above-described step S906. The processing in the flowchart isstarted by the environment recovery application UI unit 211 receiving anoperation indicating execution of environment recovery from theinstaller UI unit 201 as a trigger.

In step S1000, the environment check application UI unit 211 determineswhether to perform an environment check of the information processingapparatus 100. Upon receiving an operation indicating that the selectionbutton 501 for performing the environment check is pressed, theenvironment check application UI unit 211 determines to perform theenvironment check (CHECK in step S1000), and the processing proceeds tostep S1001. On the other hand, upon receiving an operation indicatingthat the selection button 501 for not performing the environment checkis pressed, the environment check application UI unit 211 determines notto perform the environment check (NOT CHECK in step S1000), and theprocessing in the present flowchart ends.

In step S1001, the environment recovery application 210 activates theenvironment check application 220 for checking whether there is anydefect in the environment of the information processing apparatus 100.The details will be described below with reference to FIG. 11. In stepS1002, it is determined whether there is any problem in a result of theenvironment check by the environment check application 220. If there isany problem in the environment check (YES in step S1002), it isdetermined that the environment recovery is performed, and theprocessing proceeds to step S1003. On the other hand, if there is noproblem in the environment check (NO in step S1002), it is determinedthat the environment recovery is not performed, and the processing inthe present flowchart ends.

In step S1003, the environment recovery unit 212 performs installationprocessing of software for the environment recovery of the informationprocessing apparatus 100. For example, if there is a defect of“.NetFramework” in a result of the environment check in step S1002, thenin step S1003, the environment recovery unit 212 performs recoveryprocessing on “.NetFramework”. In this case, the recovery processing of“.NetFramework” is performed by updating, or newly installing“.NetFramework” as needed. In addition, the environment recoveryapplication window 700 is displayed during the environment recovery.When the recovery processing ends, the environment recovery applicationwindow 700 is closed, and the processing in the present flowchart ends.

FIG. 11 is a flowchart illustrating the environment check processingperformed by the environment check application 220. The processing inthe flowchart is started by the environment check application UI unit221 receiving an operation indicating execution of the environment checkfrom the environment recovery application UI unit 211 as a trigger.

In step S1100, the environment check unit 222 analyzes the renderingmode setting information 300 generated in steps S902 and S903, andanalyzes an activation method of the WPF application. The environmentcheck application 220 is a WPF application which is the same type asthat of the application 230 which is an installation target of theinstaller 200.

If the rendering mode setting information 300 is set to the softwarerendering mode (YES in step S1100), it is determined that theenvironment check application 220 is activated in the software renderingmode, and the processing proceeds to step S1101. On the other hand, ifthe rendering mode setting information 300 is set to the hardwarerendering mode (NO in step S1100), it is determined that the environmentcheck application 220 is activated in the hardware rendering mode, andthe processing proceeds to step S1102.

In step S1101, the environment recovery application UI unit 211 sets aUI of the environment check application 220 to the software renderingmode. In step S1102, the environment recovery application UI unit 211sets a UI of the environment check application 220 to the hardwarerendering mode.

In step S1103, the environment recovery application UI unit 211 displaysthe environment check application window 600 in the rendering mode whichfollows the setting in step S1101 or S1102. Further, in step S1103, theenvironment recovery application UI unit 211 performs environment checkof the information processing apparatus 100. For example, theenvironment check includes checking of presence or absence of a“.NetFramework” file or registry information. If any problem is found inthe check, the environment check application 220 notifies theenvironment recovery application 210 of the problem.

FIG. 12 is a flowchart illustrating the activation processing performedby the application 230 installed by the installer 200. The processing inthe flowchart is started by the application 230 receiving an operationindicating activation of the application as a trigger.

In step S1200, the environment analysis unit 232 analyzes the renderingmode setting information 300 generated in step S902 or S903, todetermines an activation method of the WPF application. In this case,the WPF application refers to the application 230 (hereinafter, theapplication 230). If the setting of the rendering mode settinginformation 300 is the software rendering mode, it is determined toactivate the application 230 in the software rendering mode (YES in stepS1200), and the processing proceeds to step S1201. On the other hand, ifthe setting of the rendering mode setting information 300 is thehardware rendering mode, it is determined to activate the application230 in the hardware rendering mode (NO in step S1200), and theprocessing proceeds to step S1202.

In step S1201, the environment recovery application UI unit 211 sets aUI of the application 230 to the software rendering mode. In step S1202,the environment recovery application UI unit 211 sets a UI of theapplication 230 to the hardware rendering mode. When settings of therendering mode in step S1201 or S1202 is determined, the environmentrecovery application UI unit 211 displays the UI of the application 230,and ends the processing in the flowchart.

According to the first exemplary embodiment, examples in whichprocessing such as the environment recovery and the environment checkare performed in accordance with the installation processing in FIGS. 9to 11 are described. However, there is a case that the environmentrecovery and the environment check of the information processingapparatus 100 are executed only for the purpose of the environmentrecovery and the environment check themselves at a timing other thanthat of the installation processing. In view of such the purpose, theinformation processing apparatus 100 according to the present exemplaryembodiment is configured to be able to perform the environment recoveryand the environment check by activating the environment recoveryapplication even if the processing for the environment recovery in FIGS.10, and the processing for the environment check in FIG. 11 areseparated from the processing for the installer in FIG. 9. Morespecifically, if activation is started from the installer, theprocessing described in FIG. 10 or FIG. 11 can be executed in responseto reception of an execution instruction of the environment recovery orcheck application from the user independently.

According to a second exemplary embodiment, the processing in a casewhere the installer 200 performs the function of the environmentrecovery application 210 by adding the processing of the environmentrecovery application in FIG. 10 to the processing of the installer inFIG. 9 is illustrated in the flowchart in FIG. 13. The processing in theflowchart is started by the installer UI unit 201 receiving an operationindicating execution of the installation as a trigger.

In step S1300, the installer execution unit 202 determines whether theinstaller 200 is executed as update installation based on the registryinformation 800 and the installer information 810 via the environmentanalysis unit 203. A version of the application stored in the registryinformation 800 is compared with a version of the installer stored inthe installer information 810. If the version of the installer 200 ishigher, it is determined as update installation (YES in step S1300), andthe processing proceeds to step S1303. On the other hand, if anapplication which can be subjected to update installation is notincluded in the registry information 800, it is not determined as updateinstallation (NO in step S1300), and the processing proceeds to stepS1301.

In step S1301, the installer execution unit 202 determines whether aversion of the OS of the information processing apparatus 100 is apredetermined version via the environment analysis unit 203. As a resultof determination processing of the OS of the information processingapparatus 100, if it is determined that the OS of the informationprocessing apparatus 100 is Windows XP or Windows Vista (YES in stepS1301), the processing proceeds to step S1302. On the other hand, if itis not determined that the OS of the information processing apparatus100 is Windows XP or Windows Vista (NO in step S1301), the processingproceeds to step S1303.

In step S1302, the installer execution unit 202 stores a setting valuefor activating the WPF application in the software rendering mode in therendering mode setting information 300. In step S1303, the installerexecution unit 202 stores a setting value for activating the WPFapplication not in the software rendering mode in the rendering modesetting information 300.

In step S1304, the installer execution unit 202 determines aninstallation state of software necessary for operations of theapplication based on the registry information 800 and the installerinformation 810 via the environment analysis unit 203. For example, aninstallation state determination logic is as follows, if information ofsoftware stored in the installer information 810 is not stored in theregistry information 800, it is determined that necessary software isnot yet installed. Through the determination processing, the softwarelist 401 and the software installation state 402 are displayed on theinstaller main window 400. When the installer UI unit 201 receives anoperation indicating that the installation start button 403 or the Nextbutton (not illustrated) has been pressed, the processing proceeds tostep S1305.

In step S1305, the installer execution unit 202 determines whether“.NetFramework” (dotNet4CP)” which is one of software pieces necessaryfor operations of the installation target application has been alreadyinstalled via the environment analysis unit 203. If it is determinedthat “.NetFramework” has been already installed (YES in step S1305) bythe installation state determination logic in step S1304, the processingproceeds to step S1306. On the other hand, if it is determined that“.NetFramework” has not been installed (NO in step S1305), theprocessing proceeds to step S1307, and the installer execution unit 202installs “.NetFramework”.

In step S1306, the installer UI unit 211 determines whether to performthe environment check of the information processing apparatus 100. If anoperation indicating that the selection button 501 for performing theenvironment check has been pressed is received via a screen (FIG. 5)provided by the installer UI unit 211, the installer UI unit 211determines to perform the environment check (CHECK in step S1306), andthe processing proceeds to step S1308. On the other hand, if anoperation indicating that the selection button 502 for not performingthe environment check has been pressed is received, the installer UIunit 211 determines not to perform the environment check (NOT CHECK instep S1306), and the processing proceeds to step S1311.

In step S1308, the installer 200 activates the environment checkapplication 220 for checking whether there is any defect in theenvironment of the information processing apparatus 100. The processingin step S1308 is similar to the processing described in FIG. 11.

In step S1309, the installer UI unit 211 determines whether there is anyproblem in a result of the environment check by the environment checkapplication 220. If there is any problem in the environment check (YESin step S1309), it is determined that the environment recovery isperformed, and the processing proceeds to step S1310. On the other hand,if there is no problem in the environment check (NO in step S1309), itis determined that the environment recovery is not performed, and theprocessing proceeds to step S1311.

In step S1310, the installer execution unit 202 performs the environmentrecovery processing of the information processing apparatus 100. In thisprocess, assuming that there is a defect of “.NetFramework” in a resultof the environment check in step S1309, the environment recovery unit212 performs recovery processing on “.NetFramework” in step S1310. Inaddition, the environment recovery application window 700 is displayedduring the environment recovery. When the recovery processing ends, theenvironment recovery application window 700 is closed, and theprocessing proceeds to step 51311.

In step S1311, the installer execution unit 202 installs the application230, that is an installation target.

In step S1312, the installer execution unit 202 determines whether theentire installation processing including installation of softwarenecessary for installation of a target application and installation ofthe target application itself has been properly performed. If theinstallation processing has been properly performed while executing theinstaller, it is determined that installation of the application hasbeen successful (SUCCESSFUL in step S1312), and the processing in thepresent flowchart ends. On the other hand, if the installationprocessing has not been properly performed while executing theinstaller, it is determined that installation of the application hasfailed (FAILED in step S1312), and the processing proceeds to stepS1313.

In step S1313, the installer execution unit 202 performs rollbackprocessing for rolling back the information used in the installationprocessing to the point before the installation processing. Theinformation used in the installation processing refers to, for example,an installed file, a temporary file, or a registry. If installation ofthe application has failed, rollback processing of software pieces whichwere necessary for installation of the application is not performed.However, if the installation processing has failed during theinstallation of these software pieces, the installer execution unit 202performs rollback processing in accordance with specification of thesoftware. After the rollback processing is completed, the processing inthe present flowchart ends.

According to the first and second exemplary embodiments described above,software to be a target of the environment check cannot be selected.According to a third exemplary embodiment, as illustrated in FIG. 14, anexample is described in which an expansion function for enabling a userto select related software to be a target of the environment check isprovided on the user interface of the environment recovery application210. This configuration can be also applied to the first and secondexemplary embodiments described above.

An environment recovery application window 1400 indicates a userinterface of the environment recovery application UI unit 211. Anenvironment check software list 1401 indicates a list of software piecessubjected to the environment check by the environment check application220.

Check boxes 1402 allow the user to switch whether to perform theenvironment check of the software. Further, the environment recoveryapplication window 1400 includes selection buttons 1403 and 1404 forselecting whether to perform the environment check. If a start button1403 is pressed, the environment check application 220 is activated. Onthe other hand, if the selection button 1402 is pressed, the processingof the environment recovery application 201 ends without activating theenvironment check application 220.

According to the present exemplary embodiment, the user canintentionally exclude software which does not need to be checked from acheck target at the time of installation or the like.

Other Embodiments

Embodiments of the present invention can also be realized by a computerof a system or apparatus that reads out and executes computer executableinstructions recorded on a storage medium (e.g., non-transitorycomputer-readable storage medium) to perform the functions of one ormore of the above-described embodiment(s) of the present invention, andby a method performed by the computer of the system or apparatus by, forexample, reading out and executing the computer executable instructionsfrom the storage medium to perform the functions of one or more of theabove-described embodiment(s). The computer may comprise one or more ofa central processing unit (CPU), micro processing unit (MPU), or othercircuitry, and may include a network of separate computers or separatecomputer processors. The computer executable instructions may beprovided to the computer, for example, from a network or the storagemedium. The storage medium may include, for example, one or more of ahard disk, a random-access memory (RAM), a read only memory (ROM), astorage of distributed computing systems, an optical disk (such as acompact disc (CD), digital versatile disc (DVD), or Blu-ray Disc (BD)™),a flash memory device, a memory card, and the like.

While the present invention has been described with reference toexemplary embodiments, it is to be understood that the invention is notlimited to the disclosed exemplary embodiments. The scope of thefollowing claims is to be accorded the broadest interpretation so as toencompass all such modifications and equivalent structures andfunctions.

This application claims priority from Japanese Patent Application No.2012-085499 filed Apr. 4, 2012, which is hereby incorporated byreference herein in its entirety.

What is claimed is:
 1. An information processing apparatus in which anoperating system operates, the information processing apparatuscomprising: a setting unit configured to set, in a case that anapplication is installed and if an installation target application isinstalled by updating or if the operating system is not a predeterminedversion, to activate the installation target application in a hardwarerendering mode; and a control unit configured to install, if softwarenecessary for installing the installation target application is notinstalled, the necessary software, wherein the control unit installs theinstallation target application after installation of the necessarysoftware, and wherein the installed application is activated accordingto a setting by the setting unit.
 2. The information processingapparatus according to claim 1, wherein, if the installation targetapplication is not installed by updating and the operating system is apredetermined version, the setting unit sets the installation targetapplication to be activated in a software rendering mode.
 3. Theinformation processing apparatus according to claim 1, wherein, ifsoftware necessary for installing the installation target applicationhas been already installed, the control unit activates an applicationfor testing which is a same type as that of the installation targetapplication according to a setting by the setting unit, and, if aproblem is detected, the control unit performs recovery installation ofthe necessary software, and wherein the control unit installs theinstallation target application after the recovery installation.
 4. Theinformation processing apparatus according to claim 1, furthercomprising a display unit for selecting the necessary software to beconfirmed before the installation target application is installed by thecontrol unit.
 5. A method performed in an information processingapparatus in which an operating system operates, the method comprising:setting, in a case that an application is installed and if aninstallation target application is installed by updating or if theoperating system is not a predetermined version, to activate theinstallation target application in a hardware rendering mode; andinstalling, if software necessary for installing the installation targetapplication is not installed, the necessary software, wherein installingincludes installing the installation target application afterinstallation of the necessary software, and wherein the installedapplication is activated according to a setting by the setting.
 6. Anon-transitory computer readable storage medium storing a computerprogram causing an information processing apparatus to perform themethod according to claim
 5. 7. An information processing apparatuscomprising: a setting unit configured to set, in a case that anapplication is installed and if an installation target application isinstalled by updating, to activate the installation target applicationin a hardware rendering mode; and a control unit configured to install,if software necessary for installing the installation target applicationis not installed, the necessary software, wherein the control unitinstalls the installation target application after installation of thenecessary software, and wherein the installed application is activatedaccording to a setting by the setting unit.
 8. The informationprocessing apparatus according to claim 7, wherein, if the installationtarget application is installed by updating, the setting unit sets toactivate the installation target application in the hardware renderingmode without performing determination relating to a version of anoperating system operating on the information processing apparatus.